package oop.controller.action.category;

import java.sql.SQLException;

import oop.controller.action.DefaultAction;
import oop.data.SimpleCategory;
import oop.db.dao.CategoryDAO;

public class ListAction extends DefaultAction {

	@Override
	public void perform() throws Exception {
		String submit = request.getParameter("cl_submit");
		if ("delete".equals(submit)) {
			String[] items = request.getParameterValues("cl_categories");
			String mess = "";
			int deleted = 0;
			for (String item : items) {
				try {
					int id = Integer.parseInt(item);
					try {
						deleted += CategoryDAO.drop(id);
					} catch (SQLException ex) {
						if (ex.getErrorCode() == 1451) {
							SimpleCategory category = CategoryDAO.fetchById(id).get(0);
							mess += "Không thể xóa thể loại đang sử dụng: "
									+ category.getName() + "<br />";
						} else {
							throw ex;
						}
					}
				} catch (NumberFormatException ex) {
					mess += "Id không hợp lệ: " + item + "<br />";
				}
			}
			if (deleted > 0) {
				mess += "Đã xóa " + deleted + " mục";
			}
			request.setAttribute("message", mess);
		}

		request.setAttribute("topLevels", CategoryDAO.fetchTopLevels());
	}

}
